﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ControlAcceso.Dominio
{
    class Abono
    {

        private List<Cliente> clientes;
        private List<NivelAcceso> nivelesAccesos;
        private bool habilitado;
        private DateTime fechaAlta;
        private string informacionAdicional;
        private Cliente responsable;

        public Abono(List<Cliente> clientes, bool habilitado, DateTime fechaAlta, string informacionAdicional)
        {
            this.clientes = new List<Cliente>();
            this.nivelesAccesos = new List<NivelAcceso>();
            this.habilitado=habilitado;
            this.fechaAlta=fechaAlta;
            this.informacionAdicional=informacionAdicional;
            validateCreation();
        }

        private void validateCreation()
        {
            if (this.clientes == null) throw new FormatException("Debe ingresar al menos un Cliente");
            if (this.nivelesAccesos == null) throw new FormatException("Debe ingresar al menos un Nivel de Acceso");
            if (this.fechaAlta == null) throw new FormatException("Debe ingresar una Fecha de Alta");
        }

        public Cliente Responsable
        {
            get { return responsable; }
            set { responsable = value; }
        }
        
        public List<Cliente> Clientes
        {
            get { return clientes; }
            set { clientes = value; }
        }

        public bool Habilidado
        {
            get { return habilitado; }
            set { habilitado = value; }
        }

        public DateTime FechaAlta
        {
            get { return fechaAlta; }
            set { fechaAlta = value; }
        }

        public string InformacionAdicional
        {
            get { return informacionAdicional; }
            set { informacionAdicional = value; }
        }

        public List<NivelAcceso> NivelesAccesos
        {
            get { return nivelesAccesos; }
            set { nivelesAccesos = value; }
        }
        
        
    }
}
